package com.akk.module.avs.entity;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
@Component
public class AvsAccessExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AvsAccessExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAccessIdIsNull() {
            addCriterion("access_id is null");
            return (Criteria) this;
        }

        public Criteria andAccessIdIsNotNull() {
            addCriterion("access_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccessIdEqualTo(String value) {
            addCriterion("access_id =", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdNotEqualTo(String value) {
            addCriterion("access_id <>", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdGreaterThan(String value) {
            addCriterion("access_id >", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdGreaterThanOrEqualTo(String value) {
            addCriterion("access_id >=", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdLessThan(String value) {
            addCriterion("access_id <", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdLessThanOrEqualTo(String value) {
            addCriterion("access_id <=", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdLike(String value) {
            addCriterion("access_id like", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdNotLike(String value) {
            addCriterion("access_id not like", value, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdIn(List<String> values) {
            addCriterion("access_id in", values, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdNotIn(List<String> values) {
            addCriterion("access_id not in", values, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdBetween(String value1, String value2) {
            addCriterion("access_id between", value1, value2, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessIdNotBetween(String value1, String value2) {
            addCriterion("access_id not between", value1, value2, "accessId");
            return (Criteria) this;
        }

        public Criteria andAccessStatusIsNull() {
            addCriterion("access_status is null");
            return (Criteria) this;
        }

        public Criteria andAccessStatusIsNotNull() {
            addCriterion("access_status is not null");
            return (Criteria) this;
        }

        public Criteria andAccessStatusEqualTo(Integer value) {
            addCriterion("access_status =", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusNotEqualTo(Integer value) {
            addCriterion("access_status <>", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusGreaterThan(Integer value) {
            addCriterion("access_status >", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("access_status >=", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusLessThan(Integer value) {
            addCriterion("access_status <", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusLessThanOrEqualTo(Integer value) {
            addCriterion("access_status <=", value, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusIn(List<Integer> values) {
            addCriterion("access_status in", values, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusNotIn(List<Integer> values) {
            addCriterion("access_status not in", values, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusBetween(Integer value1, Integer value2) {
            addCriterion("access_status between", value1, value2, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("access_status not between", value1, value2, "accessStatus");
            return (Criteria) this;
        }

        public Criteria andAccessTypeIsNull() {
            addCriterion("access_type is null");
            return (Criteria) this;
        }

        public Criteria andAccessTypeIsNotNull() {
            addCriterion("access_type is not null");
            return (Criteria) this;
        }

        public Criteria andAccessTypeEqualTo(Integer value) {
            addCriterion("access_type =", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeNotEqualTo(Integer value) {
            addCriterion("access_type <>", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeGreaterThan(Integer value) {
            addCriterion("access_type >", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("access_type >=", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeLessThan(Integer value) {
            addCriterion("access_type <", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeLessThanOrEqualTo(Integer value) {
            addCriterion("access_type <=", value, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeIn(List<Integer> values) {
            addCriterion("access_type in", values, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeNotIn(List<Integer> values) {
            addCriterion("access_type not in", values, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeBetween(Integer value1, Integer value2) {
            addCriterion("access_type between", value1, value2, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("access_type not between", value1, value2, "accessType");
            return (Criteria) this;
        }

        public Criteria andAccessNameIsNull() {
            addCriterion("access_name is null");
            return (Criteria) this;
        }

        public Criteria andAccessNameIsNotNull() {
            addCriterion("access_name is not null");
            return (Criteria) this;
        }

        public Criteria andAccessNameEqualTo(String value) {
            addCriterion("access_name =", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameNotEqualTo(String value) {
            addCriterion("access_name <>", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameGreaterThan(String value) {
            addCriterion("access_name >", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameGreaterThanOrEqualTo(String value) {
            addCriterion("access_name >=", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameLessThan(String value) {
            addCriterion("access_name <", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameLessThanOrEqualTo(String value) {
            addCriterion("access_name <=", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameLike(String value) {
            addCriterion("access_name like", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameNotLike(String value) {
            addCriterion("access_name not like", value, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameIn(List<String> values) {
            addCriterion("access_name in", values, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameNotIn(List<String> values) {
            addCriterion("access_name not in", values, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameBetween(String value1, String value2) {
            addCriterion("access_name between", value1, value2, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessNameNotBetween(String value1, String value2) {
            addCriterion("access_name not between", value1, value2, "accessName");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowIsNull() {
            addCriterion("access_rate_low is null");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowIsNotNull() {
            addCriterion("access_rate_low is not null");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowEqualTo(Double value) {
            addCriterion("access_rate_low =", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowNotEqualTo(Double value) {
            addCriterion("access_rate_low <>", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowGreaterThan(Double value) {
            addCriterion("access_rate_low >", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowGreaterThanOrEqualTo(Double value) {
            addCriterion("access_rate_low >=", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowLessThan(Double value) {
            addCriterion("access_rate_low <", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowLessThanOrEqualTo(Double value) {
            addCriterion("access_rate_low <=", value, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowIn(List<Double> values) {
            addCriterion("access_rate_low in", values, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowNotIn(List<Double> values) {
            addCriterion("access_rate_low not in", values, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowBetween(Double value1, Double value2) {
            addCriterion("access_rate_low between", value1, value2, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessRateLowNotBetween(Double value1, Double value2) {
            addCriterion("access_rate_low not between", value1, value2, "accessRateLow");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayIsNull() {
            addCriterion("access_gateway is null");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayIsNotNull() {
            addCriterion("access_gateway is not null");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayEqualTo(String value) {
            addCriterion("access_gateway =", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayNotEqualTo(String value) {
            addCriterion("access_gateway <>", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayGreaterThan(String value) {
            addCriterion("access_gateway >", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayGreaterThanOrEqualTo(String value) {
            addCriterion("access_gateway >=", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayLessThan(String value) {
            addCriterion("access_gateway <", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayLessThanOrEqualTo(String value) {
            addCriterion("access_gateway <=", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayLike(String value) {
            addCriterion("access_gateway like", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayNotLike(String value) {
            addCriterion("access_gateway not like", value, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayIn(List<String> values) {
            addCriterion("access_gateway in", values, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayNotIn(List<String> values) {
            addCriterion("access_gateway not in", values, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayBetween(String value1, String value2) {
            addCriterion("access_gateway between", value1, value2, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessGatewayNotBetween(String value1, String value2) {
            addCriterion("access_gateway not between", value1, value2, "accessGateway");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlIsNull() {
            addCriterion("access_desk_url is null");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlIsNotNull() {
            addCriterion("access_desk_url is not null");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlEqualTo(String value) {
            addCriterion("access_desk_url =", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlNotEqualTo(String value) {
            addCriterion("access_desk_url <>", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlGreaterThan(String value) {
            addCriterion("access_desk_url >", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlGreaterThanOrEqualTo(String value) {
            addCriterion("access_desk_url >=", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlLessThan(String value) {
            addCriterion("access_desk_url <", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlLessThanOrEqualTo(String value) {
            addCriterion("access_desk_url <=", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlLike(String value) {
            addCriterion("access_desk_url like", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlNotLike(String value) {
            addCriterion("access_desk_url not like", value, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlIn(List<String> values) {
            addCriterion("access_desk_url in", values, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlNotIn(List<String> values) {
            addCriterion("access_desk_url not in", values, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlBetween(String value1, String value2) {
            addCriterion("access_desk_url between", value1, value2, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessDeskUrlNotBetween(String value1, String value2) {
            addCriterion("access_desk_url not between", value1, value2, "accessDeskUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlIsNull() {
            addCriterion("access_code_url is null");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlIsNotNull() {
            addCriterion("access_code_url is not null");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlEqualTo(String value) {
            addCriterion("access_code_url =", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlNotEqualTo(String value) {
            addCriterion("access_code_url <>", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlGreaterThan(String value) {
            addCriterion("access_code_url >", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlGreaterThanOrEqualTo(String value) {
            addCriterion("access_code_url >=", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlLessThan(String value) {
            addCriterion("access_code_url <", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlLessThanOrEqualTo(String value) {
            addCriterion("access_code_url <=", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlLike(String value) {
            addCriterion("access_code_url like", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlNotLike(String value) {
            addCriterion("access_code_url not like", value, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlIn(List<String> values) {
            addCriterion("access_code_url in", values, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlNotIn(List<String> values) {
            addCriterion("access_code_url not in", values, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlBetween(String value1, String value2) {
            addCriterion("access_code_url between", value1, value2, "accessCodeUrl");
            return (Criteria) this;
        }

        public Criteria andAccessCodeUrlNotBetween(String value1, String value2) {
            addCriterion("access_code_url not between", value1, value2, "accessCodeUrl");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}